Seismic exploration techniques are used by the oil and gas industry in exploration to identify prospects and types of geologic formations. After seismic acquisition, seismic processing is a step for generating sub-surface images for interpretation. Depth migration is a method of seismic processing.
Seismic wave propagation is one of the components to depth migration. Traditionally, approximations of the wave equation, for example ray tracing and one-way approximation, can be used to reduce high computation cost. Full-wave modeling of seismic wave propagation becomes more practical due to advances in computer hardware technology.
The Graphics Processing Unit (GPU) can be used to offload graphics computations from the Central Processing Unit (CPU). The theoretical peak performance, that is, floating point operations, of a GPU can be orders of magnitude faster than that of the latest CPU, and the memory bandwidth of a GPU can be orders of magnitude larger than that of CPU. Furthermore, a GPU can require only approximately 1/10 of the energy consumed by a CPU cluster with similar processing capability.
To take the advantage of a GPU, special coding can be required. Compute Unified Device Architecture (CUDA) and Open Computing Language (OpenCL) are two programming language choices for coding. They can be built into traditional C/C++ code. However, the coding strategy and implementation on the GPU can be completely different from that of the CPU. Significantly different algorithm design can be necessary to take the full advantage of high performance GPU. The actual benefit provided by a GPU can depend on the application and the coding strategy.
Significant research efforts in seismic processing industry are conducted in recent years. See, e.g., David Michea and Dimitri Komatitsch “Accelerating a 3D Finite-Difference Wave Propagation Code Using GPU Graphics Cards,” Geohys. J. Int. (2010) 182, 389-402; Dimitri Komatitsch, Gordon Erlebacher, Dominik Goddeke, David Michea, “High Order Finite-Element Seismic Wave Propagation Modeling with MPI on a Large GPU Cluster,” Journal of Computational Physics, 229 (2010) 7692-7714; R. Abdelkhalek, H. Calandra, O. Coulaud, G. Latu, J. Roman, “Fast Seismic Modeling and Reverse Time Migration on a GPU Cluster,” the 2009 High Performance Computing & Simulation—HPCS 09 (2009); and Dimitri Komatitsch, Gordon Erlebacher, “Modeling the Propagation of Elastic Waves Using Spectral Elements on a Cluster of 192 GPUs,” Computer Sci. Res. Dev. 2010 25: 75-82.
However, even with the significant research efforts on GPU seismic modeling, a GPU's limited memory and slow transfer rate between GPU and CPU can remain a significant challenge for application of GPU seismic modeling to industry scale problems that involve complex physics.
Some researches for addressing these challenges are to push the limit of GPU device memory size, and to utilize high-end network connections.
The other researches have focused on GPU parallel computing. Data is uploaded to a GPU at the beginning stage and result data is offloaded from the GPU after computation. During computation on the GPU, data transfer between CPU and GPU is kept to a minimum, mainly for the purpose of exchanging domain boundary results, which is necessary for domain decomposition algorithms.
As described above, a need exists for performing accurate seismic modeling on Graphics Processing Unit (GPU) devices that minimize GPU device memory requirements.
A further need exists for performing accurate seismic modeling on GPU devices that minimize GPU device-to-host transfer bandwidth requirements.
A further need exists for performing accurate seismic modeling on GPU devices that minimizes time spent on setup.
The present embodiments of the method and the system meet these needs, and improve on the technology.